The follwing soft limits API had been added to the DLL since v2.0.0



/**
  * @brief  Set the relative limits for x-axis and y-axis
  * @note   
  * @param	limitUnit: unit of limits 0=user unit; 1=micron
			XL: x-axis lower limit
			XH: x-axis higher limit
			YL: y-axis lower limit
			YH: y-axis higher limit
			XLSet: x-axis lower limit enabled flag where 1=enabled; 0=disabled
			XHSet: x-axis higher limit enabled flag where 1=enabled; 0=disabled
			YLSet: y-axis lower limit enabled flag where 1=enabled; 0=disabled
			YHSet: y-axis higher limit enabled flag where 1=enabled; 0=disabled
  * @retval 0 if success else negative error code
  */
LONG Stage::SetRelLimits(
	LONG limitUnit, 
	LONG XL, 
	LONG XH, 
	LONG YL, 
	LONG YH, 
	BOOL XLSet, 
	BOOL XHSet, 
	BOOL YLSet, 
	BOOL YHSet,
	)



	
/**
  * @brief  Get the relative limits for x-axis and y-axis
  * @note   
  * @param	pLimitUnit: pointer of unit of limits where 0=user unit; 1=micron
			pXL: pointer of x-axis lower limit
			pXH: pointer of x-axis higher limit
			pYL: pointer of y-axis lower limit
			pYH: pointer of y-axis higher limit
			pXLSet: pointer of x-axis lower limit enabled flag where 1=enabled; 0=disabled
			pXHSet: pointer of x-axis higher limit enabled flag where 1=enabled; 0=disabled
			pYLSet: pointer of y-axis lower limit enabled flag where 1=enabled; 0=disabled
			pYHSet: pointer of y-axis higher limit enabled flag where 1=enabled; 0=disabled
  * @retval 0 if success else negative error code
  */
LONG Stage::GetRelLimits(
	LONG* pLimitUnit, 
	LONG* pXL, 
	LONG* pXH, 
	LONG* pYL, 
	LONG* pYH, 
	BOOL* pXLSet, 
	BOOL* pXHSet, 
	BOOL* pYLSet, 
	BOOL* pYHSet,
	)



/**
  * @brief  Save the relative limits
  * @note   
  * @param	
  * @retval 0 if success else negative error code
  */
LONG Stage::SaveRelLimits()




/**
  * @brief  Clear the relative limits
  * @note   
  * @param	
  * @retval 0 if success else negative error code
  */
LONG Stage::ClearRelLimits()




/**
  * @brief  Get the relative limits enabled flag
  * @note   
  * @param	pVal: pointer to enabled flag where 0=disabled; 1=enabled
  * @retval 0 if success else negative error code
  */
LONG Stage::GetRelLimitsEnabled(BOOL* pVal)





/**
  * @brief  Set the relative limits enabled flag
  * @note   
  * @param	newVal: 0=disabled; 1=enabled
  * @retval 0 if success else negative error code
  */
LONG Stage::SetRelLimitsEnabled(BOOL newVal)





/**
  * @brief  Set the absolute limits for x-axis and y-axis
  * @note   
  * @param	limitUnit: unit of limits 0=user unit where 1=micron
			XL: x-axis lower limit
			XH: x-axis higher limit
			YL: y-axis lower limit
			YH: y-axis higher limit
			XLSet: x-axis lower limit enabled flag where 1=enabled; 0=disabled
			XHSet: x-axis higher limit enabled flag where 1=enabled; 0=disabled
			YLSet: y-axis lower limit enabled flag where 1=enabled; 0=disabled
			YHSet: y-axis higher limit enabled flag where 1=enabled; 0=disabled
  * @retval 0 if success else negative error code
  */
LONG Stage::SetAbsLimits(
	LONG limitUnit, 
	LONG XL, 
	LONG XH, 
	LONG YL, 
	LONG YH,
	BOOL XLSet, 
	BOOL XHSet, 
	BOOL YLSet, 
	BOOL YHSet, 
	)



	

/**
  * @brief  Get the absoulte limits for x-axis and y-axis
  * @note   
  * @param	pLimitUnit: pointer of unit of limits where 0=user unit; 1=micron
			pXL: pointer of x-axis lower limit
			pXH: pointer of x-axis higher limit
			pYL: pointer of y-axis lower limit
			pYH: pointer of y-axis higher limit
			pXLSet: pointer of x-axis lower limit enabled flag where 1=enabled; 0=disabled
			pXHSet: pointer of x-axis higher limit enabled flag where 1=enabled; 0=disabled
			pYLSet: pointer of y-axis lower limit enabled flag where 1=enabled; 0=disabled
			pYHSet: pointer of y-axis higher limit enabled flag where 1=enabled; 0=disabled
  * @retval 0 if success else negative error code
  */	
LONG Stage::GetAbsLimits(
	LONG* pLimitUnit,
	LONG* pXL, 
	LONG* pXH, 
	LONG* pYL, 
	LONG* pYH,
	BOOL* pXLSet, 
	BOOL* pXHSet, 
	BOOL* pYLSet, 
	BOOL* pYHSet,
	)





/**
  * @brief  Save the absoule limits
  * @note   
  * @param	
  * @retval 0 if success else negative error code
  */
LONG Stage::SaveAbsLimits()





/**
  * @brief  Clear the absolute limits
  * @note   
  * @param	
  * @retval 0 if success else negative error code
  */
LONG Stage::ClearAbsLimits()




/**
  * @brief  Get the absolute limits enabled flag
  * @note   
  * @param	pVal: pointer to enabled flag where 0=disabled; 1=enabled
  * @retval 0 if success else negative error code
  */
LONG Stage::GetAbsLimitsEnabled(BOOL* pVal)





/**
  * @brief  Set the absolute limits enabled flag
  * @note   
  * @param	newVale: 0=disabled; 1=enabled
  * @retval 0 if success else negative error code
  */
LONG Stage::SetAbsLimitsEnabled(BOOL newVal)	





/**
  * @brief  Get the unit of limits
  * @note   
  * @param	pVal: pointer to unit of limits where 0=user unit; 1=micron
  * @retval 0 if success else negative error code
  */
LONG Stage::GetLimitUnit(LONG* pVal)





/**
  * @brief  Set the unit of limits
  * @note   
  * @param	newVal: unit of limits where 0=user unit; 1=micron
  * @retval 0 if success else negative error code
  */
LONG Stage::SetLimitUnit(LONG newVal)



